Currently, several task distribution models with varying complexity of distributed tasks in operating systems are known. FIFO (First In, First Out) is a distribution method, which presumes the distribution of CPU time in the order of task arrival. (See, en.wikipedia.org/wiki/FIFO). During the FIFO method, each task uses the CPU time until it is completed.
Another known distribution method is called round-robin (See, en.wikipedia.org/wiki/Round-robin_scheduling). In this method, the tasks are given CPU time in a cycling list where each task in the queue is given a quantum of CPU time according to its place in the queue. If a task is not completed within a given quantum of time, it is interrupted and the next task is processed during the next quantum of time. The CPU time is allocated again for further processing of the interrupted task depending on its position in the queue, and the process is repeated until the task is completed.
A distribution system can divide complex tasks into simpler subtasks. Tasks can be divided into a set of subtasks that are independent from each other and can be executed concurrently, without interaction or data exchange with each other, and in a random order. In this case, the subtasks can be executed concurrently and asynchronously, which significantly reduces the execution time of the main task. In other cases, certain subtasks may have independent parts that can be executed concurrently, while the subtasks are distributed so that they can be synchronized and interact to execute the required operations.
The limitation of these methods is that they do not take into consideration the tasks' priorities and the fact that the executed tasks may have different priorities. With these methods, the system cannot be dynamically adjusted according to different needs and strategies to process tasks with varying complexity and scope.